1. Field of the Invention
The present invention relates to tape drives and tape drive system, as well as to methods for operating tape drive and tape drive systems, wherein communication takes place between a tape drive and an external device.
2. Description of the Prior Art
Modern tape drives typically contain an internal microprocessor, and sometimes several internal microprocessors, for controlling the operation of the tape drive. Program software for running such microprocessors typically is stored in a non-volatile, programmable memory, either disposed directly within the microprocessor, or connected to an accessible by the microprocessor. For many years, the conventional non-volatile memory type that has been used for this purpose has either been a “write-once” type (PROM) or a “write-externally” type (E-PROM). The latter memory type requires special external equipment in order for the contents thereof to be erased and re-written.
Recently, however, tape drives have been equipped with one or more program memories in the form of a “flash memory ” with associated electronics. This type of memory permits a currently-stored program to be erased, and a new program to be loaded, into the memory many times, with the memory being fixed inside the tape drive. In this manner, the tape drive can be upgraded with new program software, even several years after the tape drive was originally built and the original software installed.
FIG. 1 shows a block diagram of the basic components of such a tape drive. The tape drive includes a microprocessor 112 that controls the entire operation of the drive. A program for operating the microprocessor 112 is loaded into a non-volatile flash memory 105, and is supplied to the microprocessor 112 via a program bus 106.
A host computer can be connected with the tape drive, as needed, via an interface connector 109, which is in turn connected to an interface bus 114 leading to an interface controller 110. Conventional modern tape drives normally employ one of two types of interfaces, namely SCSI or Fibre Channel. Commands and data from the host computer are transferred via the interface connector 109, the interface bus 114 and the interface controller 110 to the internal tape drive data bus 107. The internal tape drive data bus 107 distributes the data and commands appropriately throughout the tape drive, controlled by the microprocessor 112.
Data to be written by the tape drive are transferred via the interface 109, the interface bus 114 and the interface controller 110 to a data memory 111, before being written on a tape under the control of the microprocessor 112. Similarly, data that have been read from a tape are first loaded into the data memory 111, before being transferred to the host computer via the interface controller 110, the interface bus 114 and the interface connector 109, also under the control of the microprocessor 112.
For clarity and simplicity, the read/write and motor portion of the tape drive electronics are not shown in FIG. 1, nor are the control signals from the microprocessor 112, that are used to control the various components of the tape drive electronics. These features are well known to those of ordinary skill in the field of tape drive design, and need not be explained in detail.
In addition to the interface connector 119, serving as a port to the host computer, most modern tape drives have a serial port, which is always located at the back panel of the drive. A tape drive is designed to be installed in a rack or other type of cabinetry or shelving, and thus has a clearly distinguishable front panel, which will be accessible from the front of the rack in which the tape drive is disposed, and a rear panel, opposite to the front panel, which will be hidden from view from the front when the tape drive is disposed in the rack. Typically, access to the rear panel of the tape drive requires removal of the tape drive from the rack.
The aforementioned serial port serves several functions, one being to load the program code into the flash memory 105, for operating the microprocessor 112. As noted above, this program code is installed at the time of manufacture of the tape drive, but it also may be necessary or desirable to load new program code into the flash memory 105 after the tape drive has been installed in the rack.
To load the program code into the tape drive, a computer containing the appropriate code and the necessary support programs is connected via a serial cable to the aforementioned serial port of the tape drive, which is designated with the reference numeral 100 in FIG. 1. Almost all currently available tape drives employ the RS 232-type serial port as the serial port 100. The program code is then transferred serially from the serial port 100 via a cable 113 to a serial controller 101. In the serial controller 101, the code typically is converted into parallel bytes, and is transferred via a bus 102 to a flash memory controller 103. The flash memory controller 103 controls transfer of the program code and the associated control information into the flash memory 105 via a bus 104. As noted above, this procedure is employed to load program data not only during manufacture of the tape drive, but also during servicing or updating of the tape drive, for loading new program code into an installed tape drive at the customer site.
As tape formats and tape drive operations become increasingly sophisticated, there is need to design a tape drive that can record and store essential information when an error situation occurs. Such error situations can range from a misreading of a data block or a portion of a data block to situations where the tape drive, for example, has lost control of the actual position on the tape. Typical information associated with such error situations that can be logged includes the sequence of commands received from the host computer system prior to the error situation, the timing of these commands, responses to these commands such as changes in motor speed, tape direction, tape tension, etc., as well as information from the read/write channel related to signal performance or the length of any drop-outs, as well as information from the servo-system that controls the head position relative to the tape. Since there is a wide variety of different failures that can lead a series of different error situations, it is important for the tape drive to be able to provide a service technician with as many details as possible about the overall operation of the tape drive prior to the occurrence of the error situation.
For this purpose, modern tape drives contain a non-volatile memory, designated as an error memory 115 in FIG. 1, which may also be a flash memory. Information of the above-described type is recorded in the error memory 115. Although this adds to the cost and complexity of the tape drive, it improves the chances of detecting the underlying reason for even very complex error situations. The error memory 115 is controlled by the microprocessor 112. When an error situation occurs, the microprocessor 112 can enter special information bytes in the error memory 115. These information bytes can provide information about the sequence of commands prior to the occurrence of the error situation, the actual position and performance of the tape, and other relevant information that may assist a service technician.
To utilize the benefits of the error history log stored in the error memory 115, the service technician must connect a diagnostic and test system to the tape drive via the RS232-type serial port 110 located at the back of the tape drive. This normally requires opening the cabinet or other enclosure wherein the tape is mounted, and connecting a serial cable from the computer of the test and diagnostic system to the tape drive via this serial port 100. The service technician then operates the computer of the test and diagnostic system to send appropriate program code through the serial port 100 in order to transfer the error log information from the error memory 115 via the internal data bus 107 to a data error controller 108. From the data error controller 108, the error log information proceed through the serial controller 101, the bus 113, and the serial port 100 to the service technician's computer.
Sending a service technician to the customer's site for an on-site analysis and correction of an error situation can be expensive and time consuming. Moreover, if the error situation is serious enough to preclude further operation of the tape drive until the error is corrected, the tape drive is unavailable for use until a service appointment can be scheduled and the servicing completed.